﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Data;
using DataAccess;
using Utility;

namespace Web.giamthi
{
    public partial class UCLopHoc : System.Web.UI.UserControl
    {
        LopHocControl lhCtr = new LopHocControl();
        GiaoVienControl gvCtr = new GiaoVienControl();
        LopHoc lh = new LopHoc();

        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                GridView1.AllowPaging = true;
                GridView1.PageSize = 10;
                LoadLopHoc();
                LoadGiaoVien();
            }
        }

        // Hiển thị danh sách lớp học
        private void LoadLopHoc()
        {
            GridView1.DataSource = lhCtr.GetListLopHoc();
            GridView1.DataBind();
        }

        // load giáo viên vào combobox
        private void LoadGiaoVien()
        {
            foreach (GiaoVien gv in gvCtr.GetListGiaoVien())
            {
                ddlGiaoVien.Items.Add(gv.TenGV + "-" + gv.MaGV);
            }
            ddlGiaoVien.DataBind();
        }

        // 
        private void clear()
        {
            lblId.Text = "";
            lblId.Text = "";
            txtMoTa.Text = "";
            txtTenLop.Text = "";
        }

        // insert và update lớp học
        protected void btnLuu_Click(object sender, EventArgs e)
        {
            if (CheckValidate.CheckNull(txtTenLop.Text))
            {
                lblId.Text = "Nhập tên lớp !";
            }
            else
            {
                lh.TenLop = txtTenLop.Text;
                lh.MoTa = txtMoTa.Text;
                lh.MaGV = ddlGiaoVien.SelectedValue.ToString().Split('-')[1].ToString();
                if (CheckValidate.CheckNull(lblId.Text))
                {
                    if (lhCtr.CheckTenLop(txtTenLop.Text) > 0)
                    {
                        lblId.Text = "Tên này đã tồn tại !";
                    }
                    else
                    {
                        lhCtr.InsertLopHoc(lh);
                    }
                }
                else
                {
                    lh.MaLop = Int32.Parse(lblId.Text);
                    lhCtr.UpdateLopHoc(lh);
                }
                WebHelper.ShowMessage("Cập nhật thành công !",Page);
                LoadLopHoc();
                clear();
            }
        }

        protected void btnHuy_Click(object sender, EventArgs e)
        {
            clear();
        }

        // chọn 1 lớp học đề update
        protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            string id = WebHelper.GetIdGridView(GridView1 , 0 ,e).ToString();
            lh = lhCtr.GetLopHocById(Int32.Parse(id));
            lblId.Text = lh.MaLop.ToString();
            txtTenLop.Text = lh.TenLop;
            txtMoTa.Text = lh.MoTa;
            ddlGiaoVien.Text = lh.GiaoVien.TenGV + "-" + lh.GiaoVien.MaGV;
        }

        // xóa lớp học
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int id = Int32.Parse(WebHelper.GetDataKey(GridView1,e).ToString());
            if (lhCtr.CheckDeleteLopHoc(id) > 0)
            {
                lblError.Text = "Lớp học này đã có sinh viên , không được xóa";
            }
            else
            {
                lh.MaLop = id;
                lhCtr.DeleteLopHoc(lh);
                LoadLopHoc();
                clear();
            }
        }

        // phân trang
        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            WebHelper.pageIndexChanging(GridView1 ,  e);
            LoadLopHoc();
        }

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            WebHelper.ConfirmDelete("Bạn muốn xóa dòng này ?" , e);
        }
    }
}